前言
最近在看《指標的藝術》,看能不能對於指標理解透徹一點。其中看到了函數指標
,發覺是個很有趣的東西。
函數指標
顧名思義,就是一個指向函數的指標,那有什麼用途?直接看一段程式碼。12345678910111213141516171819202122232425int add(int x, int y){ return x + y ;}int sub(int x, int y){ return x - y ;}int main(){ int a = 5 , b = 3 , c ; int (*operation)(int , int) ; operation = add ; c = (*operation)(a , b) ; printf("a + b = %d\n", c ) ; operation = sub ; c = (*operation)(a , b) ; printf("a + b = %d\n", c ) ; return 0;}
最後得到結果個別是8
和2
,可以發現函數指標可以像是變數一樣的使用,不過本質上還是指向函數的位置,型態和參數都要匹配才可以。
但要注意優先權的關係,有沒有括弧會不一樣。
|
|
前者是回傳一個指向int
的指標,後者才是指向函數的指標。